<?php
/**
 * @Name: 框架底层函数模块
 * @Author: Veris
 * @Date:   2015-10-28 14:17:01
 * @Last Modified by:   Veris
 * @Last Modified time: 2016-04-18 22:49:55
 */

    //控制器
    function C($module,$controller,$action,$params){
        $m_path=APP_PATH.'Application/'.$module;
        $path=$m_path.'/Controller/'.$controller.'Controller.class.php';
        if(!file_exists($m_path)){
            logError('加载'.$module.'模块失败！');
        }
        if(!file_exists($path)){
            logError('加载'.$controller.'控制器失败！');
        }
        require_once($path);
        $controller=$module.'Controller';
        $obj=new $controller();
        if(!method_exists($obj,$action)){
            // logError('加载'.$action.'页面失败！');
            err404();
        }
        $obj->$action($params);
    }

    //模型
    function M($name){
        $path=APP_PATH.'Application/'.$GLOBALS['module'].'/Model/'.$name.'Model.class.php';
        if(!file_exists($path)){
            logError('加载'.$name.'模型失败！');
        }
        require_once($path);
        $model =$name.'Model';
        $obj   =new $model();
        return $obj;
    }

    //视图
    function V($name){
        return APP_PATH.'Application/'.$GLOBALS['module'].'/View/'.$name;
    }
    
    //URL地址转换
    function U($url){
        if(strpos($url,'/')){
            $params =explode('/',$url);
            $urlNew =$params[0].'&c='.$params[1].'&a='.$params[2];
            for($i=3;$i<count($params);$i=$i+2){
                if(isset($params[$i+1])){
                    $urlNew .='&'.$params[$i].'='.$params[$i+1];
                }
            }
            //ucfirst自动URL规范
            return APP_NAME.'/index.php?m='.ucfirst($urlNew);
        } else {
            return APP_NAME.'/index.php?m='.ucfirst($url);
        }
    }

    //JSON编码
    function J($arr=array(),$zh=false){
        // var_dump($arr);
        if($zh){
            foreach($arr as $key => $value){
                $arr[$key]=urlencode($value);
            }
            return urldecode(json_encode($arr));
        }
        return json_encode($arr);
    }

    //加载第三方插件
    function ORG($name,$path,$params){
        require_once(APP_PATH.'Libs/ORG/'.$path.$name.'.class.php');
        $obj =new $name();
        if(!empty($params)){
            foreach ($params as $key => $value) {
                $obj->$key=$value;
            }
        }
        return $obj;
    }

    //安全过滤
    function S($str){
        return (!get_magic_quotes_gpc())?addslashes($str):$str;
    }
    
    //错误地址
    function err404(){
        return die("<h1>404错误，没有该地址！<a href='javascript:history.go(-1);'>返回</a></h1>");
    }

    //提示
    function logNotice($str){
        echo '<h1>提示:'.$str.'</h1>';
    }

    //警告
    function logWarning($str){
        echo '<h1>警告:'.$str.'</h1>';
    }

    //错误
    function logError($str){
        die('<h1>错误:'.$str.'</h1>');
    }